// API json数据接口请求
import React, {Component} from 'react';
import AxiosUtils from './AxiosUtils';

// 服务器地址
const http = "/";
// const http = "https://regan_jeff.gitee.io/regan_data/";

//参考： https://jxc.lixiaocrm.com/dashboard

//接口地址
const url = {
  index:{
    userVerify: 'verify', //验证是否登录超时
    userLogin: 'login', //用户登录功
    userLogout: 'logout', //退出登录
    userArea: 'area', //地区查询
    userUploadImg: 'uploadImg', //上传头像
  },
  user:{
    getUserInfo: 'user/getUserInfo', //获取用户信息
    updateUserInfo: 'user/updateUserInfo', //更新用户信息
    getUserListData: 'user/getUserListData', //用户列表查询
    exportExcel4User: 'user/exportExcel4User', //用户列表查询
    delUser: 'user/delUser', //删除用户
    verifyUserName: 'user/verifyUserName', //用户名重复验证
    saveUser: 'user/saveUser', //保存用户
    resetPwd: 'user/resetPwd', //重置密码
    verifyPwd: 'user/verifyPwd', //密码验证
    modifyPwd: 'user/modifyPwd', //密码修改
    sendPhoneAuthCode: 'user/sendPhoneAuthCode', //发送手机验证码
    verifyPhoneAuthCode: 'user/verifyPhoneAuthCode', //验证手机短信验证码
    modifyPhone: 'user/modifyPhone', //修改手机号
    sendEmailAuthCode: 'user/sendEmailAuthCode', //发送邮箱验证码
    verifyEmailAuthCode: 'user/verifyEmailAuthCode', //验证邮箱验证码
    modifyEmail: 'user/modifyEmail', //验证邮箱验证码
    getUserMenu: 'user/getUserMenu', //获取用户授权菜单
  },
  menu:{
    getMenuListData:'menu/getMenuListData', //菜单列表查询
    getMenuMaxSort:'menu/getMenuMaxSort', //获取最大排序码
    getMenu:'menu/getMenu', //获取菜单
    saveMenu:'menu/saveMenu', //添加菜单
    deleteMenu:'menu/deleteMenu', //删除菜单
  },
  dict:{
    getDictListData:'dict/getDictListData', //获取字典列表数据
    saveDict:'dict/saveDict', //保存字典
    getDict:'dict/getDict', //获取字典
    delteDict:'dict/delteDict', //删除字典
    getDictMaxSort:'dict/getDictMaxSort', //获取字典最大排序码
    getQueryItem:'dict/getQueryItem', //获取查询条件下拉数据
  },
  role:{
    getRoleListData:'role/getRoleListData',//获取角色列表
    getRoleMaxSort:'role/getRoleMaxSort',//获取角色最大排序码
    saveRole:'role/saveRole',//保存角色
    delRole:'role/delRole',//删除角色
    getRoleSelectData:'role/getRoleSelectData',//获取角色下拉框数据
  }
}

/**
*  接口调用
*/
export default class API extends Component {
  //用户登录功
  static getUserLogin(json){
    return AxiosUtils.postNotFeed(http + url.index.userLogin,json);
  }
  //退出登录
  static getUserLogout(){
    return AxiosUtils.post(http + url.index.userLogout);
  }
  //地区查询
  static getUserArea(json){
    return AxiosUtils.ajax("post",http + url.index.userArea,json);
  }
  //获取用户信息
  static getUserInfo(){
    return AxiosUtils.post(http + url.user.getUserInfo);
  }
  //获取用户信息
  static getUserInfo4Ajax(){
    return AxiosUtils.ajax("post",http + url.user.getUserInfo);
  }
  //获取用户信息
  static updateUserInfo(json){
    return AxiosUtils.post(http + url.user.updateUserInfo,json);
  }
  //获取用户信息
  static userUploadImg(json){
    return AxiosUtils.post(http + url.user.userUploadImg,json);
  }
  //用户列表查询
  static getUserListData(json){
    return AxiosUtils.post(http + url.user.getUserListData,json);
  }
  //删除用户
  static delUser(json){
    return AxiosUtils.post(http + url.user.delUser,json);
  }
  //用户名重复验证
  static verifyUserName(json){
    return AxiosUtils.ajax("post",http + url.user.verifyUserName,json);
  }
  //用户新增
  static saveUser(json){
    return AxiosUtils.post(http + url.user.saveUser,json);
  }
  //重置密码
  static resetPwd(json){
    return AxiosUtils.post(http + url.user.resetPwd,json);
  }
  //密码验证
  static verifyPwd(json){
    return AxiosUtils.ajaxNotFeed("post",http + url.user.verifyPwd,json);
  }
  //获取用户授权菜单
  static getUserMenu(json){
    return AxiosUtils.ajaxNotFeed("post",http + url.user.getUserMenu,json);
  }
  //密码验证
  static verifyPwd(json){
    return AxiosUtils.ajaxNotFeed("post",http + url.user.verifyPwd,json);
  }
  //密码修改
  static modifyPwd(json){
    return AxiosUtils.ajaxNotFeed("post",http + url.user.modifyPwd,json);
  }
  //发送手机验证码
  static sendPhoneAuthCode(json){
    return AxiosUtils.post(http + url.user.sendPhoneAuthCode,json);
  }
  //验证手机短信验证码
  static verifyPhoneAuthCode(json){
    return AxiosUtils.ajaxNotFeed("post",http + url.user.verifyPhoneAuthCode,json);
  }
  //修改手机号
  static modifyPhone(json){
    return AxiosUtils.ajaxNotFeed("post",http + url.user.modifyPhone,json);
  }
  //发送邮箱验证码
  static sendEmailAuthCode(json){
    return AxiosUtils.post(http + url.user.sendEmailAuthCode,json);
  }
  //验证邮箱验证码
  static verifyEmailAuthCode(json){
    return AxiosUtils.ajaxNotFeed("post",http + url.user.verifyEmailAuthCode,json);
  }
  //修改邮箱
  static modifyEmail(json){
    return AxiosUtils.ajaxNotFeed("post",http + url.user.modifyEmail,json);
  }
  //菜单列表查询
  static getMenuListData(json){
    return AxiosUtils.post(http + url.menu.getMenuListData,json);
  }
  //添加菜单
  static saveMenu(json){
    return AxiosUtils.post(http + url.menu.saveMenu,json);
  }
  //获取菜单
  static getMenu(json){
    return AxiosUtils.post(http + url.menu.getMenu,json);
  }
  //获取最大排序码
  static getMenuMaxSort(json){
    return AxiosUtils.ajaxNotFeed("post",http + url.menu.getMenuMaxSort,json);
  }
  //删除菜单
  static deleteMenu(json){
    return AxiosUtils.post(http + url.menu.deleteMenu,json);
  }
  //获取字典列表数据
  static getDictListData(json){
    return AxiosUtils.post(http + url.dict.getDictListData,json);
  }
  //保存字典
  static saveDict(json){
    return AxiosUtils.post(http + url.dict.saveDict,json);
  }
  //获取字典
  static getDict(json){
    return AxiosUtils.post(http + url.dict.getDict,json);
  }
  //删除字典
  static delteDict(json){
    return AxiosUtils.post(http + url.dict.delteDict,json);
  }
  //获取字典最大排序码
  static getDictMaxSort(json){
    return AxiosUtils.post(http + url.dict.getDictMaxSort,json);
  }
  //获取查询条件下拉数据
  static getQueryItem(json){
    return AxiosUtils.post(http + url.dict.getQueryItem,json);
  }
  //获取角色列表
  static getRoleListData(json){
    return AxiosUtils.post(http + url.role.getRoleListData,json);
  }
  //获取角色最大排序码
  static getRoleMaxSort(json){
    return AxiosUtils.post(http + url.role.getRoleMaxSort,json);
  }
  //菜单列表查询
  static getMenuTreeData(json){
    return AxiosUtils.ajaxNotFeed("post",http + url.menu.getMenuListData,json);
  }
  //保存角色
  static saveRole(json){
    return AxiosUtils.post(http + url.role.saveRole,json);
  }
  //删除角色
  static delRole(json){
    return AxiosUtils.post(http + url.role.delRole,json);
  }
  //获取角色下拉框数据
  static getRoleSelectData(json){
    return AxiosUtils.ajaxNotFeed("post",http + url.role.getRoleSelectData,json);
  }

  //get请求
  static get(url) {
    if (url.indexOf("http") < 0 || url.indexOf("http") < 0) {
      url = http + url;
    }
    return AxiosUtils.get(url);
  }

  static http() {
    return http;
  }

  static url(){
    return url;
  }
}
